// Copyright@ChenChao

#pragma once

#include "CoreMinimal.h"
#include "AbilitySystemComponent.h"
#include "CAbilitySystemComponent.generated.h"

class UCGameplayAbility;
/**
 * 
 */
UCLASS()
class CRUNCH_API UCAbilitySystemComponent : public UAbilitySystemComponent
{
	GENERATED_BODY()

public:
	//需要初始化所有值时调用
	void ApplyInitialEffects();

	//授予初始能力
	void GiveInitialAbilities();

private:
	UPROPERTY(EditDefaultsOnly, Category="Gameplay Effects")
	TArray<TSubclassOf<UGameplayEffect>> InitialEffects;	//游戏效果子类数组：需要初始化的效果

	UPROPERTY(EditDefaultsOnly, Category="Gameplay Abilities")
	TArray<TSubclassOf<UGameplayAbility>> Abilities;	//激活后的能力
	
	UPROPERTY(EditDefaultsOnly, Category="Gameplay Abilities")
	TArray<TSubclassOf<UGameplayAbility>> BasicAbilities;	//初始能力
	
};
